package br.gov.mi.corporativo.dominio.boundary.comum.pessoaendereco;

import java.util.List;

import javax.inject.Inject;
import javax.jws.WebService;

import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import br.gov.mi.corporativo.dominio.entidade.comum.PessoaEndereco;
import br.gov.mi.corporativo.dominio.repositorio.comum.PessoaEnderecoRepositorio;
import br.gov.mi.infraestrutura.crud.CrudServicoImpl;

@Component
@Transactional(readOnly=true)
@WebService(endpointInterface = "br.gov.mi.corporativo.dominio.boundary.comum.pessoaendereco.PessoaEnderecoEndPoint")
public class PessoaEnderecoServico extends CrudServicoImpl<PessoaEndereco, Long, PessoaEnderecoRepositorio>  implements PessoaEnderecoEndPoint{

	@Inject
    public void setRepository(PessoaEnderecoRepositorio repositorio) {
        super.setRepositorio(repositorio);
    }

	@Override
	public PessoaEndereco recuperarPorIdPessoaEndereco(Long idPessoaEndereco) {
		return repositorio.findByIdPessoaEndereco(idPessoaEndereco);
	}

	@Override
	public List<PessoaEndereco> recuperarPorMunicipio(Long municipio) {
		return repositorio.findByMunicipio(municipio);
	}

	@Override
	public List<PessoaEndereco> recuperarPorUf(Long uf) {
		return repositorio.findByUf(uf);
	}

	@Override
	public List<PessoaEndereco> recuperarPorPais(Long pais) {
		return repositorio.findByPais(pais);
	}

	@Override
	public List<PessoaEndereco> recuperarPorPessoa(Long pessoa) {
		return repositorio.findByPessoa(pessoa);
	}

	@Override
	public List<PessoaEndereco> recuperarPorTipoEndereco(Long tipoEndereco) {
		return repositorio.findByTipoEndereco(tipoEndereco);
	}

	@Override
	public List<PessoaEndereco> recuperarPorDsLogradouro(String dsLogradouro) {
		return repositorio.findByDsLogradouro(dsLogradouro);
	}

	@Override
	public List<PessoaEndereco> recuperarPorDsComplemento(String dsComplemento) {
		return repositorio.findByDsComplemento(dsComplemento);
	}

	@Override
	public List<PessoaEndereco> recuperarPorNmBairro(String nmBairro) {
		return repositorio.findByNmBairro(nmBairro);
	}

	@Override
	public List<PessoaEndereco> recuperarPorNrCep(String nrCep) {
		return repositorio.findByNrCep(nrCep);
	}

	@Override
	public List<PessoaEndereco> recuperarPorStCorrespondencia(String stCorrespondencia) {
		return repositorio.findByStCorrespondencia(stCorrespondencia);
	}

	@Override
	public List<PessoaEndereco> recuperarPorStRegistro(String stRegistro) {
		return repositorio.findByStRegistro(stRegistro);
	}

}
